Make xenstored use tdb, transactions can soft-fail (EAGAIN)
authorRusty Russell <rusty@rustcorp.com.au>
Fri, 23 Sep 2005 13:25:01 +0000 (14:25 +0100)
committerRusty Russell <rusty@rustcorp.com.au>
Fri, 23 Sep 2005 13:25:01 +0000 (14:25 +0100)
commitf11f68cd1157d84615621edcd7321a6d0a09b158
treebecbcc239c8b8c0f26e08428b4ac798fa5bdb4fc
parent7c7896249b7ffa3a0e6c1c749c8c3b08edf2ae70
Make xenstored use tdb, transactions can soft-fail (EAGAIN)
Transactions no longer take root dir, no longer lock & block: commit can fail spuriously with EAGAIN, not ETIMEDOUT.
Speeds up transactions by over 1000 times, should be NFS safe.
New program: xs_tdb_dump to dump raw TDB contents.
Don't do failure testing: we are no longer robust against all ENOMEM 8(
Introduce "struct node" which contains perms, children and data.
Make struct xs_permissions unpadded, so we can write to tdb w/o valgrind complaints.
Gently modify TDB to use talloc, not do alloc on tdb_delete.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
25 files changed:
tools/xenstore/Makefile
tools/xenstore/tdb.c [new file with mode: 0644]
tools/xenstore/tdb.h [new file with mode: 0644]
tools/xenstore/testsuite/04rm.test
tools/xenstore/testsuite/08transaction.slowtest
tools/xenstore/testsuite/08transaction.test
tools/xenstore/testsuite/12readonly.test
tools/xenstore/testsuite/14complexperms.test
tools/xenstore/testsuite/16block-watch-crash.test
tools/xenstore/xenstored.h
tools/xenstore/xenstored_core.c
tools/xenstore/xenstored_core.h
tools/xenstore/xenstored_domain.c
tools/xenstore/xenstored_transaction.c
tools/xenstore/xenstored_transaction.h
tools/xenstore/xenstored_watch.c
tools/xenstore/xenstored_watch.h
tools/xenstore/xs.c
tools/xenstore/xs.h
tools/xenstore/xs_lib.c
tools/xenstore/xs_lib.h
tools/xenstore/xs_random.c
tools/xenstore/xs_stress.c
tools/xenstore/xs_tdb_dump.c [new file with mode: 0644]
tools/xenstore/xs_test.c